$Header: /home/CVS/tp/exe/rfw.txt,v 1.18 2003/06/05 17:46:52 ralproth Exp $

                         _____    ______  __          __
                        |  __ \  |  ____| \ \        / /
                        | |__) | | |__     \ \  /\  / /
                        |  _  /  |  __|     \ \/  \/ /
                        | | \ \  | |         \  /\  /
                        |_|  \_\ |_|          \/  \/

   ===================================================================
 = RFW - ROSE SWE's FILE WEEDER == (C)opyright by ROSE SWE, Ralph Roth =
   ===================================================================



What is RFW? -------------------------------------------------------------

        - File Weeder
        - Anti adds checker (like AntiAD or SkullCheck)
        - CRC32 checker
        - Virus sample renamer
        - Pre-Sort for packaging large virus collections

        RFW  is  an  utility  to  weed  out  duplicate  files.    Virus
        researchers often receive large virus collections that  contain
        many duplicate files.  Not all anti-virus vendors use the  same
        virus naming convention, and often a virus sample is renamed to
        match to the name printed  by the scanner used to  identify the
        virus. These renamed files  are copied into other  collections,
        causing many  renamed but  equal files  floating around  in all
        kind of virus collections.  Furthermore RFW can be used to weed
        out duplicate  assembler files,  your JPG/MP3  collection :-)))
        etc.  See  option /ALL.   Files  with size  zero  bytes are  by
        default included  into the  database and  will be  deleted when
        running RFW with option /Del!

        RFW helps you to identify duplicate files and can automatically
        delete them.  Duplicate  files are files  with the same  32-bit
        CRCs and length.   RFW can also  maintains a database  so it is
        not necessary to rescan all files over and over again to search
        for duplicates.

Abusing RFW

        1.) RFW can  also be misused  as a CRC32  checker, e.g. if  the
        files has  been changed  etc. We  recommend to  use the  option
        /FILE for this purpose.

        2.) Anti-AD program. You can use RFW to kill those annoying BBS
        adds.  For   this  reason   other  programs   exists  (Anti-AD,
        SkullCheck), but RFW is for free. :)

        We recommend to use option /ALL  and /FILE too. If you use  RFW
        in  conjuration with  SkullCheck, REARJ  or RCVT  etc. use  the
        option /ERR to set the  Errorlevel to zero. A sample  REARJ.CFG
        file   is   included   in   the   RFW-Archive.   The   included
        RFW.DAT/RFW.LST files already contains goat files and BBS adds!

        3.)  Smart  File  Renamer:   RFW  has  the  same  "Smart Rename"
        function as  RHBVS. When  using the  options /RENAME, /RENMARX,
        /RENUMBER  and /RANDOM,  RFW analyses  the file,  traces (soft
        emulator) the entry point and renames the file extension to the
        according     entry     point.     RFW     recognizes    batch,
        COM/EXE/SYS/IMG/BIN, DOC, XLS, text files and other formats.

        4.) Virus collection "Pre-Sorter"  for RAR: Use rfw  -quick and
        rar -s (solid) to get the smallest possible archive!


Design Goals -------------------------------------------------------------

        When I started 1997 with the development of RFW the main goal was to
        create a much more better clone for TBWeeder. TBWeeder suffers from
        65.000 files limitation and hard coded file extension. Design goal
        was to have a flexible file weeder with (theoretical) unlimited file
        handling capacity only using the magic 640 KB DOS memory boundary
        This ended up in the RFW 1.xx stream that got quite popular.

        Design goal for RFW 2.xx was to port it to Win32 and Linux
        supporting long file names. As a side effect RFW can use now 4 MB of
        memory, this results in a performance gain of 300 percent. Using
        more memory slows RFW down. Due to it's design goal for the very
        small DOS memory RFW slows down when weeding big collections. For
        this reason RFW 2.xx will be disbanded. Software maintenance will
        still be made, fixing bugs and using enhancements from the other
        units.

        Design goal for RFW 3.xx is using a better hash table and holding
        all CRCs and filenames in memory to speed things up. Rfwmerge is a
        prototype for this design goal. Starting with version 3.xx the DOS16
        port will be obsolete, if you need RFW for DOS use the old 2.xx
        version or request a DOS32 version.


Requirements -------------------------------------------------------------

        DOS16:
        80286+CoProz, 550  KB of  free memory  and DOS  5.0 is  enough!
        If you have not enough conventional free memory you can use the
        special  version  of  RFW  needing  130  KB  less  memory (file
        rfwsmall.exe)! -  Skipped with  the 2.00  releases, request  if
        needed.

        Win32:
        80386+CoProz, Win32 (Win9x,NT,2000 etc.), 8 MB Memory

        DOS32:
        - not supplied with the standard distribution!
        - Same as the Win32 version, except it will also run on DOS

        Linux
        - not supplied with the standard distribution!
        - Same as the Win32 version, except it will run on Linux boxes
        with Kernel 2.x



Options ------------------------------------------------------------------

        Run  RFW.EXE /?   or RFW  /?? to  see the   current  supported
        options.  You can scan as  many drives and directories as  you
        want per run.


  Notes on parameter usage
  ------------------------

        Customers familiar with the American or UNIX parameter  syntax
        (minus sign) instead  of the slash  (' / ')  can also use  the
        minus sign (' - ') to start an option.

                Example: -Ivt is equivalent to /Ivt

        Note: There must be at least one blank between the  individual
        arguments! The arguments are not case sensitive.


   The environment variable RFW
   ----------------------------

        Instead  of  always  calling  RFW  with  arguments,  RFW   can
        be controlled with   a so-called  environment  variable.   For
        example, enter the following at the DOS prompt:

                        SET RFW=/all -Rename

        If you start  RFW now, RFW  reads all required  arguments from
        the variable.


   Rollback of preset values
   -------------------------

        Sometimes it  might be  desired to  reset already  set options
        (i.e.  set by SET RFW=...) This can simply be done by a  minus
        sign  following the  option on  the command  line.  With  this
        action the option is being switched off.

        For example, you have entered the following:

                             SET RFW=/all

        Then start RFW with the following argument:

                               RFW /all-

        In this case the  commandline option overrides the  option set
        by  the  environment  variable!  Commandline  always   override
        environment options.

        If you are a lazy bone  then set RFW=.  /add /Del /all  in your
        AUTOEXEC.BAT and RFW will add  and delete all kind of  files in
        the current directory by default!


   Option /FILE

        When using this option,  RFW additionally prints the  file name
        of the original sample. This could be useful to track duplicate
        files.  Another interesting  feature is  /FILE in  conjuctation
        with /DEL - in this case files will not be deleted if they have
        the same path name! See also /DEL warning below!

        Additionally dupes with the same path will not be displayed  on
        the screen. This is useful for CRC32 checking!


   Option /QUICK & /UNIQ

        If  you  use  this  option  make  sure  that  your  environment
        variables TMP and TEMP are set. We suggest to set TMP & TEMP to
        a RAMDISK or use a tool like VRAMDIR! This options weed out the
        current directory and removes empty directories and well as  it
        deletes duplicate files. /QUICK renames all files using  random
        names - so be cautious when using this option!


   Option /EXCLUDE

        Use this option to exclude a directory from being processed  by
        RFW.

        Example:        rfw c:\virus -add -exclude=c:\virus\sorted


Interesting features -----------------------------------------------------

        -   The amount of files RFW can handle is nearly unlimited
            (2^32 entries, that is a database with 12 GB size :)
        -   RFW can optionally delete duplicate files.
        -   Very flexible option handling.
        -   RFW can optionally display the file name of the original file.
        -   All kind of files can be scanned, even your source codes
        -   RFW is able to output a report file with all duplicate files.
        -   RFW is fast (due to big hash tables).
        -   RFW uses 2 different CRC32 checksums

        RFW  was  written   because  all  current   programs  with  the
        same functionality  can not  handle  unlimited  files or  store
        absolute paths and file names. See "Design Goals" above.

        Have you ever tried to sort a collection with 450.000 files  in
        18.000 sub directories on a  CD-ROM using a drive letter  "X:"?
        Then  try to  use this  collection with  a CD-ROM  using drive
        letter "E:"   :-))   currently I did know only one program that
        can handle different  file names as  well as more  than 560.000
        (tested!) files....  it's:  RFW


Intended purpose ---------------------------------------------------------

Example 1:

        Suppose   you   have    a  virus   collection    in   directory
        C:\MYVIRS  with viruses sorted out.   In directory  C:\NEWVIRUS
        you receive new  virus samples.

                           RFW c:\MyVirs /add

        This causes RFW to  generate a database with  file information.
        To  find  out  which   viruses  in  directory  C:\NEWVIRS   are
        duplicates, execute:

                             RFW c:\NewVirs
                                 or
                             rfw c:\newvirs -file -all

        You can  optionally put  all duplicate  files in  a log file by
        using option /log or automatically delete the duplicates by
        using option /del.

Example 2:

        Suppose you have a directory VIRUSES and you want to delete all
        duplicates.

                 RFW Viruses /add /Del  /Base=c:\tmp\local.dat

        This causes RFW to build a database and delete duplicate  files
        at the same time!

Example 3:

        Suppose  you  want   to  know  whether   viruses  from someone
        else's collection is  the same   ones you  have.  Run  RFW  on
        your own  collection and  distribute RFW.lst  and the  RFW.dat
        file to the other collector.  RFW can  now be used  to  create
        a  log file of  all known files.


SPEED ------------------------------------------------------------------

        Currently RFW is used "in  house" on 480.000 samples. To  speed
        things up we suggest the following:

        1.) set the TMP environment variable to your fastest device
        2.) use a RAM drive or the VRAMDIR utility for Win95
        3.) use a file cache like SmartDrv


WARNING ----------------------------------------------------------------

        Do  not  rescan  a  directory you  have  already  added  to the
        database with the  option /DEL, because  RTW will delete  these
        files, they are  already in the  database!  You can  avoid this
        using the option /FILE, see above.

        Option /FILE can  not be used  with databases created  with RFW
        0.12 or below!

        With  version  0.80 RFW  uses  a new  database  format with  is
        INCOMPATIBLE to earlier versions (all beta versions :-)


The database -------------------------------------------------------------

        RFW.DAT contains the 32-bit CRCs  and length of all files.  The
        first CRC is the standard ANSI CRC-32 used by packer's etc. The
        second CRC32 is a simple checksum over the first 32 bytes of  a
        file. This is used for  a major speedup (most time  RFW doesn't
        have to read the whole file instead only 32 bytes) - as well as
        a second checksum.

        For a proper understanding, here some details of the sourcecode
        that is included:

        ANSI-CRC32:
                NEW(CRC, Init( CRCPOLY_ChkSum ));
                lCrc := CRC^.CheckSumme(szIn);
                lCrc32 := CRC^.Checksumme32(SzIn);
                Dispose(CRC, Done);
        With:
                Const CRCPOLY_Def   = $EDB88320;   { Default Poly }
                CRCPOLY_PkZip = $DEBB20E3;   { PKZip's Magic Numbers }
                CRCPOLY_ChkSum = $F9B9DF6F;   { For RFW etc. }

        As you can see, we don't create the standard ANSI-CRC32 used by
        PKZIP we use instead another poly.

        This information is  usually sufficient to  find out whether  a
        file is a duplicate or not. The chance that two different files
        with the  same length  and CRC-32  are identical  are basically
        zero! Additionally the  second CRC must  fit too, this  reduces
        the possibility of false alarms too.

        RFW.LST contains the full file name of the added files as  well
        as the file size and  checksum (for debugging & error  checking
        purpose). See also option /File.


Error Codes --------------------------------------------------------------

        RFW uses the following  DOS return codes when  terminating. You
        can use them in batch files or tools like Skull Check etc.

        Errorlevel  |   Meaning
        ------------+----------------------------------------------------
            0       |   RFW completed without any error and without
                    |   finding any duplicate file!
            1       |   Misc. errors, like videomode or DOS version!
            2       |   The help screen was invoked.
            3       |   A virus was found in memory (generic detection)
            4       |   The database RFW.DAT is corrupted/access denied
            5       |   An error occurred creating the log file (/LOG=).
            6       |   Not used
            7       |   Not used
            8       |   Insufficient memory/not enough memory
            9       |   Incorrect command line option
           10       |   One or more duplicate files have been found!
         11..18     |   DOS error, please report it to ROSE SWE!
           xx       |   Internal error, please report it to ROSE SWE!
                    |

        Hint: You can set (force) the Errorlevel with the option /Err=X


License ------------------------------------------------------------------

        RFW is distributed  as AnyWare.  That  means, the author  (ROSE
        SWE) holds the full copyright  on the program, source code  and
        documentation.  The use of the  program is for free (just  like
        Freeware).  If you find this program useful and you want to see
        it improved just send me  anything you think could be  helpful,
        that means Email,  viruses, enhancement requests,  patches, bug
        reports or even money .... :-)

        Some  authors  call  this  distribution  concept:  Freeware  or
        Cardware.


Benchmark ----------------------------------------------------------------

        Measured time is in minutes, 3.20 means 3 minutes and 20 seconds.

        TP6 - Turbo Pascal 6.0
        FPC - Free Pascal Compiler 1.0.4
        TMT - TMT Pascal Compiler 3.50, Service Pack 2
        VP21 - Virtual Pascal 2.1, b243 - DOS32 extender by Veit K.


1.)     77 files, 6 dupes, database ~ 455.000 entries, P200MMX, NT4

        TP6/ASM                  3.20           OK
        TMT 3.50, SP#2          44.19           failed (0 dupes)
        FPC 1.00/GO32           12.57           OK
        FPC 1.04/Win32           1.27           OK

        After this test I decided to skip the TMT Pascal compiler


2.)     4300 files, 108 dupes, database = 4.752 entries, 486DX/2, DOS6.2

        TP6                      1.22           OK
        FPC 1.00/GO32            1.38           OK


3.)     729 files, 339 dupes, database = 16.710 entries, P200MMX, NT4

        TP6                      2.25           OK
        FPC 1.04/Win32           1.22           OK

4.)     30 files, 7 dupes, database = 456891 entries, P200MMX, NT4

                                beta2/beta3
        TP6/ASM                  4.24  4.42     OK
        VP 2.1/Win32             1.19  1.12     OK
        VP 2.1/Dos32/WX          9.29           OK
        FPC 1.04/Win32           2.02  2.01     OK
        TMT 3.50, SP#2          16.10           failed

5.)     104 files, -add -file, blank database, 486DX/2, DOS6.2
                                 seconds
        TP6/ASM                  7.15           OK
        FPC 1.04/Go32V2          3.39           OK
        VPC 2.1/Causeway         3.03           OK

6.)     VirusBuster, author of VirWeed and VS2000 package asked me to
        test his VirWeed program against RFW, comparing speed and functionality.

        See also:       http://www.oninet.es/usuarios/darknode/test2.htm

        I have done the following testbed with both programs:
        1.) Create a new database and add 6026 files  (D:\fakes)
        2.) Use this database and scan and add 2384 new files (M:\new)
        3.) Use this database and scan my tools directory to check for speed
        and false positives

        For  timing  I used  cygwins  time command.  To  avoid cashing
        penalties  for  VirWeed, RFW  is  started first,  so  VirWeed can
        profit from disk cashing.  Testing was done on my Pentium 200 PC
        with NT 4.0 SP6a.

                        rfw 2.03/32             VirWeed 1.32
        -----------------------------------------------------------------
        1.) create      rfw -add -all <dir>     virweed -cil <dir>
            files       6026                    unk(*) (6024+2 = 6026)
            dupes       2                       2
            time        00m53                   01m10

        2.) add         rfw -add -all <dir>     virweed -cal <dir>
            files       2384                    unk(*) (8408-6024 = 2384)
            dupes       9                       9
            time        01m08                   02m06

        3.)  check       rfw  -all <dir>        virweed -cl  <dir>
             files       16436                  unk(*)
             time        03m21                  13m08
        -----------------------------------------------------------------

        After  this   three  speed   tests  I   gave  up.   I  think   RFW's
        smart  CRC32,  the  hash  functions  and  the  optimized  ANSI CRC32
        routines makes it that fast.

        Functionality:  VirWeed   don't  tell   you  how   many  files   it
        processed(*). On tests 1.) and 2.) I used wc to check if virweed had
        added the same amount of files than RFW and visa versa.

        Filenames larger   than  80   characters caused   virweed to  scroll
        it's display.

        Functionality: VirWeed has a few basic options, that are  equal  to
        RFW  -add,  -del  and  -log  options.  Advanced  options like   file
        compare (-FC,  -FileShort and   -FILE) or  -DIR, -RENAME,    -RENPE,
        -UNIQ, -QUICK  etc.  are  missing. Also   VirWeed adds  default  all
        files (see -ALL,  -JPG) and has  limited directory handling    (e.g.
        -EXDIR=, or more than one directory).

        After this tests a flame war  started on ICQ ending up in  two files
        with the same length and  crc32 that virweed detected as  duplicates
        but not by rfw and fweed.


7.)     rfw 2.15 -uniq on 6933 samples

        vpc 2.1/win32           3m53    (still the fastest code :)
        tp 6.0/dos16            7m14
        fpc 1.0.6/win32/ide     4m50
        fpc 1.0.6/win32/cmdline 4m30


History ------------------------------------------------------------------


	03.08.2003  2.24	Misc. enhancements and bug fixes

        19.04.2003  2.23        Misc. enhancements and bug fixes

        2003        2.22        Misc. enhancements and bug fixes

        08.06.2002  2.21        Updated IDPacker. Released with RVCT.

        June 2002   2.20        Fixed some memory leaks using fpc 1.0.6 in
                                the .INI routine. Added .INI key file checking.
                                Updated IDPacker unit. K_Goat 4.20. Internal
                                release only.

        05.05.2002  2.10        Added more default extensions (.WMA, .MPA etc.)
                                Fixed small bugs (counter rename) etc.
                                Renamed *.DOC files to *.TXT.
                                Added rfwmerge to merge and maintain big
                                databases. Updated IDPacker. Added INI file
                                support to RFW (rfw.ini) - used by the
                                options -Rename, -Quick and -Renumber.
                                Not released to the public. K_Goat 4.10

        28.03.2002  2.03        Internal version for beta testing etc. Added
                                RFW icon to the executable.  K_Goat 4.01

        26.07.2001  2.02        Fixed a few bugs with the option /File.
                                .LNK is now a default extension. Updated
                                K_Goat 3.00.

        June 2001   2.01        32 bit is 2% faster. Added option /ShowCRC
                                therefore option /File and /FileShort have
                                a small other behavior. CRC32 is now
                                omitted on duplicate files (use /ShowCRC).

        08.05.2001  2.00        Ported to 32 bit and tested with various
                                compilers. RFW/DOS16 needs now a coprozessor.
                                !! DOS16 version up to ~25% faster than 1.0x
                                !! Win32 version up to ~300% faster than 1.0x
                                Major code changes in the units due to
                                porting to VPC, FPC and Linux/Win32.

        18.02.2001  1.07        If RFW is not able to chdir, now only a
                                warning is given (before: halt). Code
                                consolidation for Linux porting.

        19.01.2001  1.06        Major code changes due to porting
                                activities of other ROSE SWE programs to
                                win32 and Linux. Added sample programs.

        24.12.2000  1.05.3      Changed option -exclude to -exdir=
                                Enhanced -?? & -info switches. Released

        09.12.2000  1.05        Added option -exclude=c:\dir

        13.11.2000  1.04        Added option -JPG

        18.07.2000  1.03        Added .SHS and MSFT extension. When using
                                option /BASE= then .DAT is appended if no
                                extension is supplied. Now with LE and LX
                                EXE file detection and renaming. Added
                                K_Goat to the package.

        17.05.2000  1.02        Added more file types. Small enhancements.
                                Basic source code included. Inhouse use:
                                490.000 samples

        22.01.2000  1.01        Added ACE, ARJ and LZH archive detection.
                                Added Wave detection. Fixed Teledisk Image,
                                detection, added AVI, CHM, FTS, HLP and CNT
                                detection. No known bugs, in use with more
                                than 480.000 virus samples!


        22.08.99  1.00          After three month of Inhouse using: No known
                                bugs. Tested under Win-2000 Server Beta-3

        16.05.99  0.95          Added 65 KB of new hash tables for the CRC32.
                                Added detection of HTML, PDF (Adobe Acrobat)
                                and MDB (MS Access) file format.

        19.02.99  0.94          Added the options /FC (file compare),
                                /KEEP and /UNIQ. Fixed a bug with long
                                directory names. /UNIQ & /QUICK now put
                                their logs into the %TMP% directory. Added
                                the .INI extension (mIRC scripts). Added
                                option /RENPE. Added .RAR detection.
        09/98-
           02/99  0.92/0.93     Internal versions.

        08.08.98  0.91          Bugfix for 0.90. Enhanced the /RENAME
                                function.

        20.07.98  0.90          Added a new hash table for the RFW.DAT file
                                Speedup: 31 percent!

        12.06.98  0.83          Added enhanced critical error handling
                                unit. Minor bug fixes. /RENAME improved
                                (.GIF, .TXT, .MAC). Added timer statistic.
                                Added DELBAK.CFG (to weed trash files).
                                Added RFWFAQ.DOC. Minor small improvements.

        10.05.98  0.82          Option /DIR added. IMG/BIN detection
                                improved. CRC of dupes are now located
                                at the same position, if you use /FILE.
                                (SR from Joe Hartmann). Improved /RANDOM.
                                Added option /QUICK. Improved /RENAME.

        01.05.98  0.81          First official release. Added some misc
                                goat files to the database. Fixed some
                                typos!

        26.04.98  0.80         Options /Err=x and /FileShort added.
                                RFW now uses an additionally 32 bit
                                checksum over the header of each file.
                                This results in a major speedup. First
                                official beta release!

        20.04.98  0.15         Option /File added. Minor bug fixes.

        29.03.98  0.12         Fixed a lot of minor bugs in the /Rename
                                section.

        20.03.98  0.11         Options /RANDOM and /INFO added.

        15.03.98  0.10         Eight times better hashing for the CRC32
                                added. Now the package includes the
                                program ZOOZIP.

        14.03.98  0.04         Eight times better hashing for the file
                                length added. Deleted files can now be
                                undeleted (in previous versions they
                                couldn't).

        09.03.98  0.03         /Renumber renames the Log file and/or the
                                database if they are in the directory
                                where to weed: Fixed.
                                /Rename, /Renumber now supports more Excel
                                formats (.XLA, .XLS etc.), credits: A. Marx

        02.03.98  0.02         Added another hash table. Fixed the
                                the following bugs:
                                1.) Under Win 0.95 /Base=xxx doesn't work.
                                2.) Under Win 0.95 creating an empty
                                database requires restart of RFW.

        15.02.98  0.01         First beta version
        14.02.98                Initial creation, based on RHBVS. Due to
                                this fact, the programming took me 3 hours
                                including writing the documentation.
                                CRC-32 routines are taken from the
                                programs AntiLink and CrCheck.

Source Code --------------------------------------------------------------

        Full source code  available on request,  basic source code  is
        included in the directory \SRC


Bugs ---------------------------------------------------------------------
                                                           Requested by
ToDo/ER:
        [ ] /COPY and /MOVE                                Ralph Roth
        [ ] /SMALLER=x  /BIGGER=x                          Ralph Roth
        [ ] /MP3 (scans only first 8 KB)                   Ralph Roth
        [ ] /ExFile=list;list                              CyberRax
        ----

NT40:

        Option -DIR doesn't work under NT40 with the win32 version

General:

        The DOS version  can only handle  filenames with max.  67 chars
        length (including  paths).  If  you have  longer filenames (Win
        95/Win-NT supports IMHO 250 chars)  you have to map your  paths
        or use the 32 bit (LFN) version.

        Detection  has  been  added  for  LAN-Manager,  NetWare   based
        networks, Samba and Microsoft compatible networks.

        Under Novell NetWare this is an  easy job, just take a look  at
        MAP.EXE

        The DOS32/Win32/Linux version doesn't have this limit.


Beta testers & credits ---------------------------------------------------

        Ralph Roth - author, concept, design, documentation
        Andreas Marx - concept, technical consultant

        Cyberrax - Bug reports and enhancements requests

        Mano Schwarz, Lubos Vrtik, Joe Hartmann, Pierre Foucart,
        Tjark Auerbach, Howard Fuhs, Stefan Kurtzhals, you?


AV Companies using RFW ---------------------------------------------------

        Fuhs Security Consultants (AVP Germany)
        GEGA Software (TSCAN, Andreas Marx)
        H+BEDV (AntiVir)
        Ikarus Austria
        Lubos Vrtik, author of HMVS
        ROSE SWE (VSP, RHBVS etc.)
        VDS, Trend Micro (Joe Hartmann)
        Author of ANTS Trojan Scanner

you?    send a email if you want to be included/removed :)


Copyright ----------------------------------------------------------------



(C)opyright 1987-2003 (ALL RIGHTS RESERVED!)


__________ ________    ____________________   ___________      _____________
\______   \\_____  \  /   _____/\_   _____/  /   _____/  \    /  \_   _____/
 |       _/ /   |   \ \_____  \  |    __)_   \_____  \\   \/\/   /|    __)_
 |    |   \/    |    \/        \ |        \  /        \\        / |        \
 |____|_  /\_______  /_______  //_______  / /_______  / \__/\  / /_______  /
        \/         \/        \/         \/          \/       \/          \/

 -------------------------------------=-----------------------------------
     ROSE SWE                           See ROSEBBS.TXT for
     Dipl.-Ing. Ralph Roth              full address, FAX and PGP keys.
     http://come.to/rose_swe
     rose_swe@hotmail.com               All Rights Reserved!
 -------------------------------------=-----------------------------------




PGP-Key ------------------------------------------------------------------

        See ROSEBBS.TXT

/* END */
